{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": false,
    "jupyter": {
     "outputs_hidden": false
    },
    "pycharm": {
     "name": "#%%\n"
    }
   },
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "pycharm": {
     "name": "#%%\n"
    }
   },
   "outputs": [],
   "source": [
    "from cion.gui import scan_lines"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": false,
    "jupyter": {
     "outputs_hidden": false
    },
    "pycharm": {
     "name": "#%%\n"
    }
   },
   "outputs": [],
   "source": [
    "def new_data_generator(n, dx=0.02):\n",
    "\n",
    "    x = 0\n",
    "    y = np.zeros([n])\n",
    "    v = None\n",
    "\n",
    "    yield x, y\n",
    "    while True:\n",
    "        x += dx\n",
    "        v = np.random.normal(0, 1, np.shape(y))\n",
    "        y = y + v * dx\n",
    "        yield x, y"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": false,
    "jupyter": {
     "outputs_hidden": false
    },
    "pycharm": {
     "name": "#%%\n"
    }
   },
   "outputs": [],
   "source": [
    "generator = new_data_generator(2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": false,
    "jupyter": {
     "outputs_hidden": false
    },
    "pycharm": {
     "name": "#%%\n"
    }
   },
   "outputs": [
    {
     "ename": "SystemExit",
     "evalue": "This program needs access to the screen. Please run with a\nFramework build of python, and only when you are logged in\non the main display of your Mac.",
     "output_type": "error",
     "traceback": [
      "An exception has occurred, use %tb to see the full traceback.\n",
      "\u001b[0;31mSystemExit\u001b[0m\u001b[0;31m:\u001b[0m This program needs access to the screen. Please run with a\nFramework build of python, and only when you are logged in\non the main display of your Mac.\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/mu_qiao/anaconda3/envs/cion/lib/python3.10/site-packages/IPython/core/interactiveshell.py:3405: UserWarning: To exit: use 'exit', 'quit', or Ctrl-D.\n",
      "  warn(\"To exit: use 'exit', 'quit', or Ctrl-D.\", stacklevel=1)\n"
     ]
    }
   ],
   "source": [
    "buffer = scan_lines(\n",
    "    producer=lambda: next(generator),\n",
    "    sampling_rate=256,\n",
    "    win_size=10,\n",
    "    hist_bins=20,\n",
    ")\n",
    "\n",
    "plt.plot(buffer.xs, buffer.ys)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "pycharm": {
     "name": "#%%\n"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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KiNz5syhoKCAAQMGEBYWduG2cOHCC+ucPHmSI0eOXLgfGRnJ8uXLWb16NTExMbz22mvMmDGD++67r+aehYiIiDita/qckbpSm58zIiIiIrWjssfvar+bRkRERKQmqIyIiIiIqVRGRERExFQqIyIiImIqlRERERExlcqIiIiImEplREREREylMiIiIiKmUhkRERERU1XrW3vr2i8fEltYWGhyEhEREamsX47bV/uwd6coI0VFRQBERESYnERERESqqqioiKCgoMv+u1N8N43D4eDEiRMEBARgsVhq7OcWFhYSERHB0aNH9Z03tUz7um5oP9cN7ee6of1cN2pzPxuGQVFRES1btsTN7fJXhjjFmRE3NzfCw8Nr7ecHBgbqF72OaF/XDe3nuqH9XDe0n+tGbe3nK50R+YUuYBURERFTqYyIiIiIqRp0GfH29uaVV17B29vb7CguT/u6bmg/1w3t57qh/Vw36sN+dooLWEVERMR1NegzIyIiImI+lRERERExlcqIiIiImEplREREREzl0mVkzZo1DB8+nJYtW2KxWPj888+vuk16ejrXXXcdPj4+tGvXjg8//LD2gzq5qu7nxYsXM3jwYJo3b05gYCB9+/bl66+/rpuwTqw6v8+/WL9+PR4eHsTExNRaPldRnf1stVp58cUXadOmDd7e3rRv356PPvqo9sM6uers6/nz5xMdHU2jRo0ICwvjkUce4fTp07Uf1kklJyfTu3dvAgICCAkJYcSIEezevfuq29X1sdCly0hxcTHR0dHMmjWrUusfPHiQYcOG0b9/fzIzM5k6dSrjx4/ns88+q+Wkzq2q+3nNmjUMHjyY5cuXs3nzZm655RaGDx9OZmZmLSd1blXdz78oKChg3Lhx3HrrrbWUzLVUZz+PGjWK7777jrlz57J7925SU1Pp0qVLLaZ0DVXd1+vWrWPcuHE89thjbN++nbS0NH766Scef/zxWk7qvNLT00lISGDjxo2sXLkSm83GkCFDKC4uvuw2phwLjQYCMJYsWXLFdZ577jmjS5cuFy178sknjeuvv74Wk7mWyuznS+nWrZsxbdq0mg/koqqyn0ePHm388Y9/NF555RUjOjq6VnO5msrs56+++soICgoyTp8+XTehXFRl9vXbb79ttGvX7qJlM2bMMMLDw2sxmWvJzc01ACM9Pf2y65hxLHTpMyNVtWHDBoYMGXLRsqFDh7Jp0yYqKipMSuX6HA4HRUVFBAcHmx3F5cybN4/9+/fzyiuvmB3FZS1btoxevXrx1ltv0apVKzp16sSkSZMoLS01O5rLueGGGzh27BjLly/HMAxOnTrFokWLuOOOO8yO5jQKCgoArvh6a8ax0Cm+KK+u5OTkEBoaetGy0NBQbDYb+fn5hIWFmZTMtb377rsUFxczatQos6O4lL179/LCCy+wdu1aPDz0p15bDhw4wLp16/Dx8WHJkiXk5+fz9NNPc+bMGV03UsNuuOEG5s+fz+jRoykrK8Nms3HXXXcxc+ZMs6M5BcMwmDhxIv369SMqKuqy65lxLNSZkV+xWCwX3Tf+7wNqf71cakZqaiqvvvoqCxcuJCQkxOw4LsNutxMfH8+0adPo1KmT2XFcmsPhwGKxMH/+fPr06cOwYcN47733+Pvf/66zIzVsx44djB8/npdffpnNmzezYsUKDh48yFNPPWV2NKeQmJjIli1bSE1Nveq6dX0s1P8u/ZsWLVqQk5Nz0bLc3Fw8PDxo2rSpSalc18KFC3nsscdIS0tj0KBBZsdxKUVFRWzatInMzEwSExOBnw+ahmHg4eHBN998w8CBA01O6RrCwsJo1arVRV+T3rVrVwzD4NixY3Ts2NHEdK4lOTmZG2+8kcmTJwPQs2dP/Pz86N+/P3/+85919voKkpKSWLZsGWvWrCE8PPyK65pxLFQZ+Td9+/bliy++uGjZN998Q69evfD09DQplWtKTU3l0UcfJTU1VfPeWhAYGMjWrVsvWvbBBx+watUqFi1aRGRkpEnJXM+NN95IWloa58+fx9/fH4A9e/bg5uZ21Rd9qZqSkpLfjBzd3d2Bf/2fu1zMMAySkpJYsmQJq1evrtTfvhnHQpce05w/f56srCyysrKAn9+ulJWVxZEjRwCYMmUK48aNu7D+U089xeHDh5k4cSI7d+7ko48+Yu7cuUyaNMmM+E6jqvs5NTWVcePG8e6773L99deTk5NDTk7OhQur5NKqsp/d3NyIioq66BYSEoKPjw9RUVH4+fmZ9TTqvar+PsfHx9O0aVMeeeQRduzYwZo1a5g8eTKPPvoovr6+ZjwFp1HVfT18+HAWL17MnDlzOHDgAOvXr2f8+PH06dOHli1bmvEU6r2EhAQ++eQTUlJSCAgIuPB6++8jxHpxLKy19+nUA99//70B/Ob20EMPGYZhGA899JBx8803X7TN6tWrjdjYWMPLy8to27atMWfOnLoP7mSqup9vvvnmK64vl1ad3+d/p7f2Vk519vPOnTuNQYMGGb6+vkZ4eLgxceJEo6SkpO7DO5nq7OsZM2YY3bp1M3x9fY2wsDDjgQceMI4dO1b34Z3EpfYvYMybN+/COvXhWGj5v7AiIiIipnDpMY2IiIjUfyojIiIiYiqVERERETGVyoiIiIiYSmVERERETKUyIiIiIqZSGRERERFTqYyIiIiIqVRGRERExFQqIyIiImIqlRERERExlcqIiIiImOr/A1M0DwrRst8aAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot([1, 2], [2, 3])\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "pycharm": {
     "name": "#%%\n"
    }
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.4"
  },
  "toc-autonumbering": false,
  "toc-showcode": true,
  "toc-showmarkdowntxt": true
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
